import Vue from 'vue'
// 图片大图预览(全屏)  {img = string || array, index = Number初始显示图片索引值，默认为0}
Vue.prototype.$imgPreview = function(img, index) {
	let imgArr = Array.isArray(img) ? img : [img];
	uni.previewImage({
		indicator: "number",
		loop: true,
		current: index ? index : 0,
		urls: imgArr
	})
}
// 处理富文本
Vue.prototype.$formatContent = function(html) {
	let content_data = html.replace(/<img[^>]*>/gi, function(match, capture) {
		match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
		match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
		match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
		return match;
	}); // 修改所有style里的width属性为max-width:100%
	content_data = content_data.replace(/style="[^"]+"/gi, function(match, capture) {
		match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi,
			'max-width:100%;');
		return match;
	}); // 去掉<br/>标签
	content_data = content_data.replace(/<br[^>]*\/>/gi, ''); // img标签添加style属性：max-width:100%;height:auto
	content_data = content_data.replace(/\<img/gi,
		'<img style="max-width:100%;height:auto;display:block;margin:0px auto;"');
	return content_data;
}
// 倒计时 
Vue.prototype.$countDownTime = (v) => {
	let date = +new Date(v); //+new Date() 返回毫秒数
	let now = +new Date()
	let surplus = (date - now) / 1000 // 剩余秒
	let h = parseInt(surplus / 60 / 60 % 24) // 时
	let m = parseInt(surplus / 60 % 60) // 分
	let s = parseInt(surplus % 60) //秒
	let str = `${h<10?'0'+h:h}:${m<10?'0'+m:m}:${s<10?'0'+s:s}`
	if (surplus <= 0) {
		return '已结束'
	}
	return str;
};

// 时间格式
Vue.prototype.$timesFormat = (times, type) => {
	// type 为 zh - / 三种
	let date = new Date(times);
	console.log(date, type)
	let Y = date.getFullYear();
	let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
	let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate());

	let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours());
	let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());
	let s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
	let str = ''
	if (type.toUpperCase() == 'ZH') {
		str = `${Y}年${M}月${D}日 ${h}时${m}分${s}秒`
	} else {
		str = `${Y}${type}${M}${type}${D} ${h}:${m}:${s}`
	}
	return str;
};

//IP归属地
import {
	getUserInfo
} from '@/apis/apis.js'
Vue.prototype.$attribution = () => {

	uni.request({
		url: 'https://restapi.amap.com/v3/ip',
		method: "GET",
		data: {
			"key": 'c7c8d7fc9a55c1ca128f9c1500b889e5', // 高德key 仅解析IP 不用定位api
		},
		success: (res) => {
			const {
				data: {
					city
				}
			} = res
			console.log('IP属地:', res)
			getUserInfo({
				// #ifdef APP-PLUS
				city: res.data.city,
				// #endif
				// #ifdef MP-WEIXIN
				city: res.data.key,
				// #endif
			}).then(user => {
				const {
					data: {
						id,
						nickName,
						headPortrait
					}
				} = user
				let user_data = {
					memberId: id,
					nickName,
					headPortrait
				}
				uni.setStorageSync('USER_DATA', user_data);
			})
		},
	})
}
// export const dateFormat = function(date, fmt = "yyyy-MM-dd") {
//     if (typeof date === 'number' || typeof date === 'string') {
//         date = new Date(date)
//     }
//      var o = { 
//         "M+" : date.getMonth()+1,                 //月份 
//         "d+" : date.getDate(),                    //日 
//         "h+" : date.getHours(),                   //小时 
//         "m+" : date.getMinutes(),                 //分 
//         "s+" : date.getSeconds(),                 //秒 
//         "q+" : Math.floor((date.getMonth()+3)/3), //季度 
//         "S"  : date.getMilliseconds()             //毫秒 
//     }; 
//     if(/(y+)/.test(fmt)) {
//             fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); 
//     }
//      for(var k in o) {
//         if(new RegExp("("+ k +")").test(fmt)){
//              fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
//          }
//      }
//     return fmt; 
// }
// const {
// 	baseUrl
// } = require('@/utils/request.js')
// import {
// 	dirid
// } from '../../apis/apis.js'
// 	// 上传图片
// 	Vue.prototype.chooseImage = (obj) => {
// 		obj = obj ? obj : {};
// 		obj.count = obj.count ? obj.count : 1;
// 		obj.sizeType = obj.sizeType ? obj.sizeType : ['compressed'];
// 		obj.sourceType = obj.sourceType ? obj.sourceType : ['album', 'camera '];
// 		obj.success = obj.success ? obj.success : (eve) => {

// 		}; //成功返回
// 		obj.fail = obj.fail ? obj.fail : (eve) => { //失败返回
// 			uni.showToast({
// 				title: '上传图片失败',
// 				icon: 'none',
// 				duration: 1500
// 			});
// 		};
// 		uni.chooseImage({
// 			count: obj.count,
// 			sizeType: obj.sizeType, //可以指定是原图还是压缩图，默认二者都有
// 			sourceType: obj.sourceType, //从相册选择
// 			success: function(res) {
// 				console.log(JSON.stringify(res.tempFilePaths));
// 				obj.success(res.tempFilePaths)
// 			},
// 			fail: function(res) {
// 				console.log(JSON.stringify(res));
// 				obj.fail(res)
// 			},
// 		});
// 	}
// 	// 存储用户数据
// 	Vue.prototype.setUser = (obj) => {
// 		console.log(obj)
// 		var token = obj.token_type + ' ' + obj.access_token
// 		// uni.setStorageSync('USER', JSON.stringify(obj));
// 		uni.setStorageSync('TOKEN', token);
// 	}
// 	// 获取用户数据
// 	Vue.prototype.getUser = (obj) => {
// 		return uni.getStorageSync('USER') ? JSON.parse(uni.getStorageSync('USER')) : false;
// 	}
// 	// 清除用户信息
// 	Vue.prototype.removeUser = (obj) => {
// 		uni.removeStorageSync('USER');
// 		uni.removeStorageSync('TOKEN');
// 	}
// 	// 获取分享落地页倒计时  
// 	Vue.prototype.countdownNum = (obj) => {
// 		return uni.getStorageSync('countdownNum') ? JSON.parse(uni.getStorageSync('countdownNum')) : 1000;
// 	}


// 	// 判断用户数据
// 	Vue.prototype.judgeUser = () => {
// 		if (!Vue.prototype.getUser()) {
// 			uni.showToast({
// 				title: '请先授权账号',
// 				icon: 'none',
// 				duration: 1500
// 			});
// 			setTimeout(() => {
// 				uni.switchTab({
// 					url: '/pages/my/my'
// 				});
// 			}, 1500)
// 			return false;
// 		}
// 		return true;
// 	}
// 	// 时间格式
// 	Vue.prototype.timestampToTime = (timestamp) => {
// 		var date = new Date(timestamp); //时间戳为10位需*1000，时间戳为13位的话不需乘1000
// 		var Y = date.getFullYear() + '-';
// 		var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
// 		var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
// 		var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
// 		var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + '';
// 		var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
// 		return Y + M + D;
// 	};

// 	// 时间格式
// 	Vue.prototype.timestampToTimeHHmmss = (timestamp) => {
// 		var date = new Date(timestamp); //时间戳为10位需*1000，时间戳为13位的话不需乘1000
// 		var Y = date.getFullYear() + '-';
// 		var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
// 		var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
// 		var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
// 		var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
// 		var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
// 		return Y + M + D + h + m + s;
// 	};



// 	Vue.prototype.getRemainderTime = (startTime) => {
// 		var s1 = new Date(startTime.replace(/-/g, '/')),
// 			s2 = new Date(),
// 			runTime = parseInt((s2.getTime() - s1.getTime()) / 1000)
// 		if (runTime < 60) {
// 			return runTime + '秒'
// 		} else if (runTime < 3600) {
// 			return Math.floor(runTime / 60) + '分'
// 		} else if (runTime < 86400) {
// 			return Math.floor(runTime / 3600) + '时'
// 		} else if (runTime < 31536000) {
// 			return Math.floor(runTime / 86400) + '天'
// 		} else {
// 			return Math.floor(runTime / 31536000) + '年'
// 		}
// 		var year = Math.floor(runTime / 86400 / 365)
// 		runTime = runTime % (86400 * 365)
// 		var month = Math.floor(runTime / 86400 / 30)
// 		runTime = runTime % (86400 * 30)
// 		var day = Math.floor(runTime / 86400)
// 		runTime = runTime % 86400
// 		var hour = Math.floor(runTime / 3600)
// 		runTime = runTime % 3600
// 		var minute = Math.floor(runTime / 60)
// 		runTime = runTime % 60
// 		var second = runTime
// 		return day + '天' + hour + '时' + minute + '分'
// 	};

// 	// 删除数组对应的内容 ['4','5','6'].remove('5');//['4','6']
// 	Vue.prototype.indexOf = function(val) {
// 		for (var i = 0; i < this.length; i++) {
// 			if (this[i] == val) return i;
// 		}
// 		return -1;
// 	}
// 	//找对数值对应下标，删除
// 	Vue.prototype.remove = function(val) {
// 		var index = Vue.prototype.URL.indexOf(val);
// 		if (index > -1) {
// 			Vue.prototype.URL.splice(index, 1);
// 		}
// 	}
// 	Vue.prototype.getNumTime = function(AddDayCount) {
// 		/* 
// 		num 获取当天多少天后的日期
// 		*/
// 		let dd = new Date()
// 		//获取AddDayCount天后的日期
// 		dd.setDate(dd.getDate() + AddDayCount);
// 		let y = dd.getFullYear();

// 		//获取当前月份的日期，不足10补0
// 		let m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1)

// 		//获取当前几号，不足10补0
// 		let d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate()

// 		let firstDistribution = y + "-" + m + "-" + d;
// 		return firstDistribution;
// 	};
// 	Vue.prototype.setNumTime = function(AddDayCount) {
// 		/* 
// 		num 获取当天多少天后的日期
// 		*/
// 		let dd = new Date()
// 		//获取AddDayCount天后的日期
// 		dd.setDate(dd.getDate() - AddDayCount);
// 		let y = dd.getFullYear();

// 		//获取当前月份的日期，不足10补0
// 		let m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1)

// 		//获取当前几号，不足10补0
// 		let d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate()

// 		let firstDistribution = y + "-" + m + "-" + d;
// 		return firstDistribution;
// 	};
// 	Vue.prototype.formatRichText = function(html) { //控制小程序中图片大小
// 		let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
// 			console.log(match.search(/style=/gi));

// 			if (match.search(/style=/gi) == -1) {
// 				match = match.replace(/\<img/gi, '<img style=""');
// 			}
// 			return match;
// 		});
// 		newContent = newContent.replace(/style="/gi, '$& max-width:100% !important; ');
// 		newContent = newContent.replace(/<br[^>]*\/>/gi, '');
// 		return newContent;

// 	};
// 	// 随机数 （最小，最大）
// 	Vue.prototype.randomFun = function(min, max) {
// 		return Math.random() * (max - min) + min;
// 	}
// 	// 根据城市判断成功率
// 	Vue.prototype.cityJoin = function(city) {
// 		let name = 0;
// 		switch (city) {
// 			case city.indexOf('湖南') >= 0:
// 				name = '100'
// 				break;
// 			case city.indexOf('广东') >= 0:
// 				name = '100'
// 				break;
// 			case city.indexOf('海南') >= 0:
// 				name = '100'
// 				break;

// 			default:

// 		}
// 		return name;
// 	}


// 	// 上传图片 img
// 	Vue.prototype.chooseImageUpload = (obj) => {
// 			obj = obj ? obj : {};
// 			obj.count = obj.count ? obj.count : 1;
// 			obj.sizeType = obj.sizeType ? obj.sizeType : ['compressed'];
// 			obj.sourceType = obj.sourceType ? obj.sourceType : ['album', 'camera '];
// 			obj.success = obj.success ? obj.success : (eve) => {

// 			}; //成功返回
// 			obj.fail = obj.fail ? obj.fail : (eve) => { //失败返回
// 				uni.showToast({
// 					title: '上传图片失败',
// 					icon: 'none',
// 					duration: 1500
// 				});
// 			};
// 			uni.chooseImage({
// 				count: obj.count,
// 				sizeType: obj.sizeType, //可以指定是原图还是压缩图，默认二者都有
// 				sourceType: obj.sourceType, //从相册选择
// 				success: function(res) {
// 					console.log(res.tempFilePaths);
// 					uni.uploadFile({
// 						url: baseUrl + '/api/staff/staffManage/upload',
// 						files: res.tempFilePaths,
// 						header: {
// 							Authorization: uni.getStorageSync("CONVENIENCE_TOKEN")
// 						},
// 						success: res => {
// 							obj.success(res)
// 						},
// 						fail: err => {
// 							obj.fail(res)
// 						}
// 					})
// 				},
// 				fail: function(res) {
// 					console.log(JSON.stringify(res));
// 					obj.fail(res)
// 				},
// 			});
// 		},

// 		// 定位,打开地图,选择地址
// 		Vue.prototype.getCityAddress = async function() {
// 			let address = null;
// 			address = await new Promise((resolve, reject) => {
// 				uni.getLocation({
// 					type: 'gcj02',
// 					success: (res => {
// 						uni.chooseLocation({
// 							latitude: res.latitude,
// 							longitude: res.longitude,
// 							success: (ret) => {
// 								resolve(ret.address)
// 							}
// 						})
// 					}),
// 					fail: (res) => {
// 						uni.showModal({
// 							content: '检测到您没打开获取位置信息功能权限，是否去设置打开？',
// 							confirmText: "确认",
// 							cancelText: '取消',
// 							success: (res) => {
// 								if (res.confirm) {
// 									uni.openSetting({
// 										success: (res) => {}
// 									})
// 								} else {
// 									console.log('取消');
// 									resolve(false)
// 								}
// 							}
// 						})
// 					}
// 				})
// 			});
// 			return address;
// 		}

// 	// 定位,打开地图,选择地址 (包含经纬度)
// 	Vue.prototype.getCityAddressLat = async function() {
// 		let address = null;
// 		address = await new Promise((resolve, reject) => {
// 			uni.getLocation({
// 				type: 'gjc02',
// 				altitude: true,
// 				isHighAccuracy: true,
// 				success: (res => {
// 					uni.chooseLocation({
// 						latitude: res.latitude,
// 						longitude: res.longitude,
// 						success: (ret) => {
// 							// console.log('这是选择的地址',res.latitude,res.longitude,ret)
// 							resolve(ret)
// 						}
// 					})
// 				}),
// 				fail: (res) => {
// 					uni.$u.toast(res)
// 					uni.showModal({
// 						content: '检测到您没打开获取位置信息功能权限，是否去设置打开？',
// 						confirmText: "确认",
// 						cancelText: '取消',
// 						success: (res) => {
// 							if (res.confirm) {
// 								uni.openSetting({
// 									success: (res) => {}
// 								})
// 							} else {
// 								console.log('取消');
// 								resolve(false)
// 							}
// 						}
// 					})
// 				}
// 			})
// 		});
// 		return address;
// 	}

// 	// 安卓拨打电话（附带权限申请） phoneNumber电话号码
// 	Vue.prototype.plusAndroidCallPhone = function(phoneNumber) {
// 		// #ifdef APP-PLUS
// 		plus.android.requestPermissions(
// 			["android.permission.CALL_PHONE"],
// 			(resultObj) => {
// 				console.log('resultObj', resultObj)
// 				var result = 0;
// 				for (var i = 0; i < resultObj.granted.length; i++) {
// 					var grantedPermission = resultObj.granted[i];
// 					console.log('已获取的权限：' + grantedPermission);
// 					result = 1
// 				}
// 				for (var i = 0; i < resultObj.deniedPresent.length; i++) {
// 					var deniedPresentPermission = resultObj.deniedPresent[i];
// 					console.log('拒绝本次申请的权限：' + deniedPresentPermission);
// 					result = 0
// 				}
// 				for (var i = 0; i < resultObj.deniedAlways.length; i++) {
// 					var deniedAlwaysPermission = resultObj.deniedAlways[i];
// 					console.log('永久拒绝申请的权限：' + deniedAlwaysPermission);
// 					result = -1
// 				}
// 				console.log(result);
// 				if (result == 1) {
// 					uni.makePhoneCall({
// 						phoneNumber: phoneNumber, //电话号码
// 						success(ress) {
// 							console.log("拨打电话成功", ress)
// 						},
// 						fail(err) {
// 							console.log("拨打电话失败", 'err')
// 							this.$u.toast('拨打电话失败')
// 						}
// 					});
// 				} else {
// 					uni.showToast({
// 						title: "请开启拨号权限",
// 						icon: "error",
// 					})
// 				}
// 			},
// 			function(error) {
// 				console.log('申请权限错误：' + error.code + " = " + error.message);
// 			}
// 		);
// 		// #endif
// 		// #ifndef APP-PLUS
// 		uni.makePhoneCall({
// 			phoneNumber: phoneNumber, //电话号码
// 			success(ress) {
// 				console.log("拨打电话成功", ress)
// 			},
// 			fail(err) {
// 				console.log("拨打电话失败", err)
// 				uni.$u.toast('拨打电话失败')
// 			}
// 		});
// 		// #endif

// 	}

// 	// 字典数据处理   valueKey取值 按理说是dictValue字段 但是有重复值， 所以默认dictCode字段， 若后面要改 直接修改默认值即可
// 	Vue.prototype.__dictManager = function(data = [], valueKey = 'dictCode') {
// 		return data.map(item => ({
// 			label: item.dictLabel,
// 			value: item[valueKey]
// 		}))
// 	}

// 	// 单列picker数据设置 （字典）
// 	Vue.prototype.oneColPickerDataSets = function(data = []) {
// 		if (!data) return
// 		data.forEach(item => {
// 			const {
// 				valueKey,
// 				key,
// 				type
// 			} = item
// 			dirid({
// 				dictType: type
// 			}).then(res => {
// 				if (res.code === 200) {
// 					const list = this.__dictManager(res.rows, valueKey)
// 					// console.log(`[${key}] picker设置成功`)
// 					// console.log(list)
// 					this.$set(this, key, [list])
// 				} else {
// 					this.$set(this, key, [
// 						[]
// 					])
// 					uni.$u.toast(res.msg)
// 				}
// 			}).catch(() => {
// 				this.$set(this, key, [
// 					[]
// 				])
// 			})
// 		})
// 	}

// 	// 单列Picker的label回显筛选 （字典）
// 	Vue.filter('oneColPickerDictFilter', function(val, columns, not = '') {
// 		if (!columns) return not
// 		const [first] = columns
// 		if (!first) return not
// 		if (typeof val !== 'number' && !val) return not
// 		console.log(first,"第一")
// 		const findItem = first.find(item => item.value == val)
// 		if (!findItem) return not
// 		return findItem.label
// 	})

// 	Vue.prototype.jurisdiction = function(val){
// 		if(uni.getStorageSync('user').roleId !=102){
// 			return true
// 		}else{
// 			return false
// 		}
// 	}
// 	// 安卓拨打电话（附带权限申请） phoneNumber电话号码
// 	Vue.prototype.plusAndroidH5CallPhone = function(phoneNumber){
// 		// #ifdef APP-PLUS
// 			plus.android.requestPermissions(
// 				["android.permission.CALL_PHONE"], 
// 				(resultObj)=> {
// 					console.log('resultObj',resultObj)
// 					var result = 0;
// 					for (var i = 0; i < resultObj.granted.length; i++) {
// 						var grantedPermission = resultObj.granted[i];
// 						console.log('已获取的权限：' + grantedPermission);
// 						result = 1
// 					}
// 					for (var i = 0; i < resultObj.deniedPresent.length; i++) {
// 						var deniedPresentPermission = resultObj.deniedPresent[i];
// 						console.log('拒绝本次申请的权限：' + deniedPresentPermission);
// 						result = 0
// 					}
// 					for (var i = 0; i < resultObj.deniedAlways.length; i++) {
// 						var deniedAlwaysPermission = resultObj.deniedAlways[i];
// 						console.log('永久拒绝申请的权限：' + deniedAlwaysPermission);
// 						result = -1
// 					}
// 					console.log(result);
// 					if(result == 1){
// 						uni.makePhoneCall({
// 							phoneNumber: phoneNumber,//电话号码
// 							fail(err) {
// 								console.log("拨打电话失败",'err')
// 								this.$u.toast('拨打电话失败')
// 							}
// 						});
// 					}else{
// 						uni.showToast({
// 							title:"请开启拨号权限",
// 							icon:"error",
// 						})
// 					}
// 				},
// 				function(error) {
// 					console.log('申请权限错误：' + error.code + " = " + error.message);
// 				}
// 			);
// 		// #endif
// 		// #ifndef APP-PLUS
// 			uni.makePhoneCall({
// 				phoneNumber: phoneNumber,//电话号码
// 			});
// 		// #endif
// 	}
// }
